/*
 * XML Type:  ComponentModel
 * Namespace: http:///org/isistan/flabot/coremodel.ecore
 * Java type: org.isistan.flabot.coremodelEcore.ComponentModel
 *
 * Automatically generated - do not modify.
 */
package org.isistan.flabot.coremodelEcore.impl;
/**
 * An XML ComponentModel(@http:///org/isistan/flabot/coremodel.ecore).
 *
 * This is a complex type.
 */
public class ComponentModelImpl extends org.isistan.flabot.coremodelEcore.impl.ExtensibleElementImpl implements org.isistan.flabot.coremodelEcore.ComponentModel
{
    private static final long serialVersionUID = 1L;
    
    public ComponentModelImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName PROPERTIES$0 = 
        new javax.xml.namespace.QName("", "properties");
    private static final javax.xml.namespace.QName STEREOTYPE$2 = 
        new javax.xml.namespace.QName("", "stereotype");
    private static final javax.xml.namespace.QName NOTES$4 = 
        new javax.xml.namespace.QName("", "notes");
    private static final javax.xml.namespace.QName FEATURES$6 = 
        new javax.xml.namespace.QName("", "features");
    private static final javax.xml.namespace.QName OWNEDPORTS$8 = 
        new javax.xml.namespace.QName("", "ownedPorts");
    private static final javax.xml.namespace.QName COREMODEL$10 = 
        new javax.xml.namespace.QName("", "coreModel");
    private static final javax.xml.namespace.QName NAME$12 = 
        new javax.xml.namespace.QName("", "name");
    private static final javax.xml.namespace.QName STEREOTYPE2$14 = 
        new javax.xml.namespace.QName("", "stereotype");
    private static final javax.xml.namespace.QName NOTES2$16 = 
        new javax.xml.namespace.QName("", "notes");
    private static final javax.xml.namespace.QName FEATURES2$18 = 
        new javax.xml.namespace.QName("", "features");
    private static final javax.xml.namespace.QName OWNEDPORTS2$20 = 
        new javax.xml.namespace.QName("", "ownedPorts");
    
    
    /**
     * Gets array of all "properties" elements
     */
    public org.isistan.flabot.coremodelEcore.Property[] getPropertiesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(PROPERTIES$0, targetList);
            org.isistan.flabot.coremodelEcore.Property[] result = new org.isistan.flabot.coremodelEcore.Property[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "properties" element
     */
    public org.isistan.flabot.coremodelEcore.Property getPropertiesArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Property target = null;
            target = (org.isistan.flabot.coremodelEcore.Property)get_store().find_element_user(PROPERTIES$0, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "properties" element
     */
    public int sizeOfPropertiesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PROPERTIES$0);
        }
    }
    
    /**
     * Sets array of all "properties" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setPropertiesArray(org.isistan.flabot.coremodelEcore.Property[] propertiesArray)
    {
        check_orphaned();
        arraySetterHelper(propertiesArray, PROPERTIES$0);
    }
    
    /**
     * Sets ith "properties" element
     */
    public void setPropertiesArray(int i, org.isistan.flabot.coremodelEcore.Property properties)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Property target = null;
            target = (org.isistan.flabot.coremodelEcore.Property)get_store().find_element_user(PROPERTIES$0, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(properties);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "properties" element
     */
    public org.isistan.flabot.coremodelEcore.Property insertNewProperties(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Property target = null;
            target = (org.isistan.flabot.coremodelEcore.Property)get_store().insert_element_user(PROPERTIES$0, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "properties" element
     */
    public org.isistan.flabot.coremodelEcore.Property addNewProperties()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Property target = null;
            target = (org.isistan.flabot.coremodelEcore.Property)get_store().add_element_user(PROPERTIES$0);
            return target;
        }
    }
    
    /**
     * Removes the ith "properties" element
     */
    public void removeProperties(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PROPERTIES$0, i);
        }
    }
    
    /**
     * Gets array of all "stereotype" elements
     */
    public org.isistan.flabot.coremodelEcore.Stereotype[] getStereotypeArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(STEREOTYPE2$14, targetList);
            org.isistan.flabot.coremodelEcore.Stereotype[] result = new org.isistan.flabot.coremodelEcore.Stereotype[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "stereotype" element
     */
    public org.isistan.flabot.coremodelEcore.Stereotype getStereotypeArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Stereotype target = null;
            target = (org.isistan.flabot.coremodelEcore.Stereotype)get_store().find_element_user(STEREOTYPE2$14, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "stereotype" element
     */
    public int sizeOfStereotypeArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(STEREOTYPE2$14);
        }
    }
    
    /**
     * Sets array of all "stereotype" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setStereotypeArray(org.isistan.flabot.coremodelEcore.Stereotype[] stereotypeArray)
    {
        check_orphaned();
        arraySetterHelper(stereotypeArray, STEREOTYPE2$14);
    }
    
    /**
     * Sets ith "stereotype" element
     */
    public void setStereotypeArray(int i, org.isistan.flabot.coremodelEcore.Stereotype stereotype)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Stereotype target = null;
            target = (org.isistan.flabot.coremodelEcore.Stereotype)get_store().find_element_user(STEREOTYPE2$14, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(stereotype);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "stereotype" element
     */
    public org.isistan.flabot.coremodelEcore.Stereotype insertNewStereotype(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Stereotype target = null;
            target = (org.isistan.flabot.coremodelEcore.Stereotype)get_store().insert_element_user(STEREOTYPE2$14, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "stereotype" element
     */
    public org.isistan.flabot.coremodelEcore.Stereotype addNewStereotype()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Stereotype target = null;
            target = (org.isistan.flabot.coremodelEcore.Stereotype)get_store().add_element_user(STEREOTYPE2$14);
            return target;
        }
    }
    
    /**
     * Removes the ith "stereotype" element
     */
    public void removeStereotype(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(STEREOTYPE2$14, i);
        }
    }
    
    /**
     * Gets array of all "notes" elements
     */
    public org.isistan.flabot.coremodelEcore.Note[] getNotesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(NOTES2$16, targetList);
            org.isistan.flabot.coremodelEcore.Note[] result = new org.isistan.flabot.coremodelEcore.Note[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "notes" element
     */
    public org.isistan.flabot.coremodelEcore.Note getNotesArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Note target = null;
            target = (org.isistan.flabot.coremodelEcore.Note)get_store().find_element_user(NOTES2$16, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "notes" element
     */
    public int sizeOfNotesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(NOTES2$16);
        }
    }
    
    /**
     * Sets array of all "notes" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setNotesArray(org.isistan.flabot.coremodelEcore.Note[] notesArray)
    {
        check_orphaned();
        arraySetterHelper(notesArray, NOTES2$16);
    }
    
    /**
     * Sets ith "notes" element
     */
    public void setNotesArray(int i, org.isistan.flabot.coremodelEcore.Note notes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Note target = null;
            target = (org.isistan.flabot.coremodelEcore.Note)get_store().find_element_user(NOTES2$16, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(notes);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "notes" element
     */
    public org.isistan.flabot.coremodelEcore.Note insertNewNotes(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Note target = null;
            target = (org.isistan.flabot.coremodelEcore.Note)get_store().insert_element_user(NOTES2$16, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "notes" element
     */
    public org.isistan.flabot.coremodelEcore.Note addNewNotes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.Note target = null;
            target = (org.isistan.flabot.coremodelEcore.Note)get_store().add_element_user(NOTES2$16);
            return target;
        }
    }
    
    /**
     * Removes the ith "notes" element
     */
    public void removeNotes(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(NOTES2$16, i);
        }
    }
    
    /**
     * Gets array of all "features" elements
     */
    public org.isistan.flabot.coremodelEcore.FeatureModel[] getFeaturesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(FEATURES2$18, targetList);
            org.isistan.flabot.coremodelEcore.FeatureModel[] result = new org.isistan.flabot.coremodelEcore.FeatureModel[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "features" element
     */
    public org.isistan.flabot.coremodelEcore.FeatureModel getFeaturesArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.FeatureModel target = null;
            target = (org.isistan.flabot.coremodelEcore.FeatureModel)get_store().find_element_user(FEATURES2$18, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "features" element
     */
    public int sizeOfFeaturesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(FEATURES2$18);
        }
    }
    
    /**
     * Sets array of all "features" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setFeaturesArray(org.isistan.flabot.coremodelEcore.FeatureModel[] featuresArray)
    {
        check_orphaned();
        arraySetterHelper(featuresArray, FEATURES2$18);
    }
    
    /**
     * Sets ith "features" element
     */
    public void setFeaturesArray(int i, org.isistan.flabot.coremodelEcore.FeatureModel features)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.FeatureModel target = null;
            target = (org.isistan.flabot.coremodelEcore.FeatureModel)get_store().find_element_user(FEATURES2$18, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(features);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "features" element
     */
    public org.isistan.flabot.coremodelEcore.FeatureModel insertNewFeatures(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.FeatureModel target = null;
            target = (org.isistan.flabot.coremodelEcore.FeatureModel)get_store().insert_element_user(FEATURES2$18, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "features" element
     */
    public org.isistan.flabot.coremodelEcore.FeatureModel addNewFeatures()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.FeatureModel target = null;
            target = (org.isistan.flabot.coremodelEcore.FeatureModel)get_store().add_element_user(FEATURES2$18);
            return target;
        }
    }
    
    /**
     * Removes the ith "features" element
     */
    public void removeFeatures(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(FEATURES2$18, i);
        }
    }
    
    /**
     * Gets array of all "ownedPorts" elements
     */
    public org.isistan.flabot.coremodelEcore.PortModel[] getOwnedPortsArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(OWNEDPORTS2$20, targetList);
            org.isistan.flabot.coremodelEcore.PortModel[] result = new org.isistan.flabot.coremodelEcore.PortModel[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "ownedPorts" element
     */
    public org.isistan.flabot.coremodelEcore.PortModel getOwnedPortsArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.PortModel target = null;
            target = (org.isistan.flabot.coremodelEcore.PortModel)get_store().find_element_user(OWNEDPORTS2$20, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "ownedPorts" element
     */
    public int sizeOfOwnedPortsArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(OWNEDPORTS2$20);
        }
    }
    
    /**
     * Sets array of all "ownedPorts" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setOwnedPortsArray(org.isistan.flabot.coremodelEcore.PortModel[] ownedPortsArray)
    {
        check_orphaned();
        arraySetterHelper(ownedPortsArray, OWNEDPORTS2$20);
    }
    
    /**
     * Sets ith "ownedPorts" element
     */
    public void setOwnedPortsArray(int i, org.isistan.flabot.coremodelEcore.PortModel ownedPorts)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.PortModel target = null;
            target = (org.isistan.flabot.coremodelEcore.PortModel)get_store().find_element_user(OWNEDPORTS2$20, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(ownedPorts);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "ownedPorts" element
     */
    public org.isistan.flabot.coremodelEcore.PortModel insertNewOwnedPorts(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.PortModel target = null;
            target = (org.isistan.flabot.coremodelEcore.PortModel)get_store().insert_element_user(OWNEDPORTS2$20, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "ownedPorts" element
     */
    public org.isistan.flabot.coremodelEcore.PortModel addNewOwnedPorts()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.PortModel target = null;
            target = (org.isistan.flabot.coremodelEcore.PortModel)get_store().add_element_user(OWNEDPORTS2$20);
            return target;
        }
    }
    
    /**
     * Removes the ith "ownedPorts" element
     */
    public void removeOwnedPorts(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(OWNEDPORTS2$20, i);
        }
    }
    
    /**
     * Gets array of all "coreModel" elements
     */
    public org.isistan.flabot.coremodelEcore.CoreModel[] getCoreModelArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(COREMODEL$10, targetList);
            org.isistan.flabot.coremodelEcore.CoreModel[] result = new org.isistan.flabot.coremodelEcore.CoreModel[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "coreModel" element
     */
    public org.isistan.flabot.coremodelEcore.CoreModel getCoreModelArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.CoreModel target = null;
            target = (org.isistan.flabot.coremodelEcore.CoreModel)get_store().find_element_user(COREMODEL$10, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "coreModel" element
     */
    public int sizeOfCoreModelArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(COREMODEL$10);
        }
    }
    
    /**
     * Sets array of all "coreModel" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setCoreModelArray(org.isistan.flabot.coremodelEcore.CoreModel[] coreModelArray)
    {
        check_orphaned();
        arraySetterHelper(coreModelArray, COREMODEL$10);
    }
    
    /**
     * Sets ith "coreModel" element
     */
    public void setCoreModelArray(int i, org.isistan.flabot.coremodelEcore.CoreModel coreModel)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.CoreModel target = null;
            target = (org.isistan.flabot.coremodelEcore.CoreModel)get_store().find_element_user(COREMODEL$10, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(coreModel);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "coreModel" element
     */
    public org.isistan.flabot.coremodelEcore.CoreModel insertNewCoreModel(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.CoreModel target = null;
            target = (org.isistan.flabot.coremodelEcore.CoreModel)get_store().insert_element_user(COREMODEL$10, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "coreModel" element
     */
    public org.isistan.flabot.coremodelEcore.CoreModel addNewCoreModel()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.isistan.flabot.coremodelEcore.CoreModel target = null;
            target = (org.isistan.flabot.coremodelEcore.CoreModel)get_store().add_element_user(COREMODEL$10);
            return target;
        }
    }
    
    /**
     * Removes the ith "coreModel" element
     */
    public void removeCoreModel(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(COREMODEL$10, i);
        }
    }
    
    /**
     * Gets the "name" attribute
     */
    public java.lang.String getName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$12);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "name" attribute
     */
    public org.apache.xmlbeans.XmlString xgetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$12);
            return target;
        }
    }
    
    /**
     * True if has "name" attribute
     */
    public boolean isSetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(NAME$12) != null;
        }
    }
    
    /**
     * Sets the "name" attribute
     */
    public void setName(java.lang.String name)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(NAME$12);
            }
            target.setStringValue(name);
        }
    }
    
    /**
     * Sets (as xml) the "name" attribute
     */
    public void xsetName(org.apache.xmlbeans.XmlString name)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(NAME$12);
            }
            target.set(name);
        }
    }
    
    /**
     * Unsets the "name" attribute
     */
    public void unsetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(NAME$12);
        }
    }
    
    /**
     * Gets the "stereotype" attribute
     */
    public java.lang.String getStereotype2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(STEREOTYPE2$14);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "stereotype" attribute
     */
    public org.apache.xmlbeans.XmlString xgetStereotype2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(STEREOTYPE2$14);
            return target;
        }
    }
    
    /**
     * True if has "stereotype" attribute
     */
    public boolean isSetStereotype2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(STEREOTYPE2$14) != null;
        }
    }
    
    /**
     * Sets the "stereotype" attribute
     */
    public void setStereotype2(java.lang.String stereotype2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(STEREOTYPE2$14);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(STEREOTYPE2$14);
            }
            target.setStringValue(stereotype2);
        }
    }
    
    /**
     * Sets (as xml) the "stereotype" attribute
     */
    public void xsetStereotype2(org.apache.xmlbeans.XmlString stereotype2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(STEREOTYPE2$14);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(STEREOTYPE2$14);
            }
            target.set(stereotype2);
        }
    }
    
    /**
     * Unsets the "stereotype" attribute
     */
    public void unsetStereotype2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(STEREOTYPE2$14);
        }
    }
    
    /**
     * Gets the "notes" attribute
     */
    public java.lang.String getNotes2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NOTES2$16);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "notes" attribute
     */
    public org.apache.xmlbeans.XmlString xgetNotes2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NOTES2$16);
            return target;
        }
    }
    
    /**
     * True if has "notes" attribute
     */
    public boolean isSetNotes2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(NOTES2$16) != null;
        }
    }
    
    /**
     * Sets the "notes" attribute
     */
    public void setNotes2(java.lang.String notes2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NOTES2$16);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(NOTES2$16);
            }
            target.setStringValue(notes2);
        }
    }
    
    /**
     * Sets (as xml) the "notes" attribute
     */
    public void xsetNotes2(org.apache.xmlbeans.XmlString notes2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NOTES2$16);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(NOTES2$16);
            }
            target.set(notes2);
        }
    }
    
    /**
     * Unsets the "notes" attribute
     */
    public void unsetNotes2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(NOTES2$16);
        }
    }
    
    /**
     * Gets the "features" attribute
     */
    public java.lang.String getFeatures2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(FEATURES2$18);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "features" attribute
     */
    public org.apache.xmlbeans.XmlString xgetFeatures2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(FEATURES2$18);
            return target;
        }
    }
    
    /**
     * True if has "features" attribute
     */
    public boolean isSetFeatures2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(FEATURES2$18) != null;
        }
    }
    
    /**
     * Sets the "features" attribute
     */
    public void setFeatures2(java.lang.String features2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(FEATURES2$18);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(FEATURES2$18);
            }
            target.setStringValue(features2);
        }
    }
    
    /**
     * Sets (as xml) the "features" attribute
     */
    public void xsetFeatures2(org.apache.xmlbeans.XmlString features2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(FEATURES2$18);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(FEATURES2$18);
            }
            target.set(features2);
        }
    }
    
    /**
     * Unsets the "features" attribute
     */
    public void unsetFeatures2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(FEATURES2$18);
        }
    }
    
    /**
     * Gets the "ownedPorts" attribute
     */
    public java.lang.String getOwnedPorts2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(OWNEDPORTS2$20);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "ownedPorts" attribute
     */
    public org.apache.xmlbeans.XmlString xgetOwnedPorts2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(OWNEDPORTS2$20);
            return target;
        }
    }
    
    /**
     * True if has "ownedPorts" attribute
     */
    public boolean isSetOwnedPorts2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(OWNEDPORTS2$20) != null;
        }
    }
    
    /**
     * Sets the "ownedPorts" attribute
     */
    public void setOwnedPorts2(java.lang.String ownedPorts2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(OWNEDPORTS2$20);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(OWNEDPORTS2$20);
            }
            target.setStringValue(ownedPorts2);
        }
    }
    
    /**
     * Sets (as xml) the "ownedPorts" attribute
     */
    public void xsetOwnedPorts2(org.apache.xmlbeans.XmlString ownedPorts2)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(OWNEDPORTS2$20);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(OWNEDPORTS2$20);
            }
            target.set(ownedPorts2);
        }
    }
    
    /**
     * Unsets the "ownedPorts" attribute
     */
    public void unsetOwnedPorts2()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(OWNEDPORTS2$20);
        }
    }
}
